草庐IT

c++ - 小数位数之和

全部标签

c++ - 指向单个位的 C/C++ 指针类型?

我想修改单个数据位(例如int或char)。我想通过制作一个指针来做到这一点,比如ptr。通过将它分配给一些int或char,然后在递增ptrn次之后,我想访问该数据的第n位。有点像//Ifiwanttochangeallthe8bitsinacharvariablecharc="A";T*ptr=&c;//TisthedatatypeofpointerIwant..intindex=0;for(index;index 最佳答案 C++中没有位指针这样的东西。您需要使用两个东西,一个字节指针和该位的偏移量。这似乎是您在代码中的目标。

c++ - Visual Studio 2010 项目文件过滤器

我正在处理一组复杂的C/C++应用程序,这些应用程序应该也是平台独立的。到目前为止,是否与UNIX/Windows兼容并且运行良好。然而,在VS2010上维护这个怪物是一场噩梦。我有以下文件结构:/sourceslib1include...src...lib2include...src...app3include...src...builderscmake...make...VS2010vs2010.slnlib1lib1.vcxprojlib1.vcxproj.filterslib2lib2.vcxprojlib2.vcxproj.filtersapp3app3.vcxprojapp

c++ - 在循环中声明变量是否有效?

这个问题在这里已经有了答案:Differencebetweendeclaringvariablesbeforeorinloop?(26个答案)Isthereanyoverheadtodeclaringavariablewithinaloop?(C++)(13个答案)关闭9年前。如果我执行以下操作之一(我认为这对于这个问题的目的是等效的)for(inti=0;i变量j是否在每个循环中在堆栈上重新创建(SP是否在每个循环中不断更新),或者编译器是否足够聪明,知道有多少局部变量函数可能一次拥有的变量,然后在函数入口处为堆栈中的所有变量腾出空间?我知道这在理论上依赖于编译器,但我假设像这样的简

c++ - C/C++ : header file not found

一些头文件存在于/src/dir1/中(例如:a.h、b.h、c.h等)。我的源文件存在于/src/dir2/file.cpp中.我使用了一些存在于/src/dir1/中的头文件但是在编译过程中我得到了类似headerfilenotfound的错误.然后我将包含路径更改为#include"../src/dir1/a.h",然后错误消失在file.cpp但我得到notfound/src/dir1中存在的头文件中存在错误.因为我包含了头文件说a.h,那a.h包含了一些存在于/src/dir1/中的其他头文件(比如b.h和c.h出现在a.h中)。如何在a.h中添加头文件(/src/dir2/

c++ - 如何将 C++ 静态库链接到 C 程序?

我有以下C++程序:客户端.h#ifndefClient_Client_h#defineClient_Client_h#include"Client.h"classClient{public:voidf1();voidf2();};#endif客户端.cpp#include#includeusingnamespacestd;#include"Client.h"voidClient::f1(){cout在XCode4.3中编译上面的代码会得到一个名为的静态库文件:libClient.a另外,我有一个main.c#include////usingnamespacestd;intmain()

c++ - C/C++ 中的 '@' 和 '$' 是什么意思?

这个问题在这里已经有了答案:Aredollar-signsallowedinidentifiersinC++03?(7个答案)dollarsigninvariablename?(4个答案)关闭9年前。到目前为止,在MinGW中,“$”似乎只是一个基本字符(如“a”),可用于名称(变量、函数等),但它看起来不像一个字符。使用“$”作为我缺少的名称的一部分是否有一些隐藏的功能?int$m=2;printf("$m=%i",$m);控制台输出:$m=2但是,“@”符号用作字符时会产生错误。error:stray'@'inprogram我假设这意味着它被用于某些事情?Wikipedia,和MS

c++ - 为什么VC++引入非标准关键字: __leave?

根据MSDN:The__leavestatementismoreefficientbecauseitdoesnotcausestackunwinding.以我的理解,就是说:“这样一个普通的代码片段是危险的!”structA{int*p;A():p(newint){}~A(){deletep;}};voidf(){__try{Aa;...//Doingsomthingif(thethinghasgonebad)__leave;...//Continue}__finally{}}在C++项目中完全避免__leave是最佳实践吗? 最佳答案

c++ - 64 位随机生成器种子

我目前正在运行一个具有8个以上管道(线程)的多线程模拟应用程序。这些管道运行非常复杂的代码,该代码取决于种子生成的随机序列。然后将序列归结为单个0/1。我希望这个“随机处理”在将种子从主线程传递到处理管道后是100%确定性的。因此,我可以在第二次运行中复制结果。所以,例如:(我有这个编码并且它有效)Pipe1->Seed:123->Result:0Pipe2->Seed:123->Result:0Pipe3->Seed:589->Result:1当我需要运行100M或更多这些进程然后对结果进行平均时,问题就出现了。可能100M中只有1个是1,其余都是0。很明显,我无法使用32位种子对1

c++ - GNU 编译器 vs. Visual Studio 在数组上分配 w/Length Constant w/in a Scope

我知道如果你在c/c++中设置一个动态值,你不能在括号内使用该值来分配一个数组(这会使它成为所谓的可变长度数组(VLA),其中currentC++standard不支持)...即见:C++:VariableLengthArrayhttp://en.wikipedia.org/wiki/Variable-length_array我不太明白(而且我在这里没有看到确切地问到的)是为什么GNUc/c++编译器(gcc、g++)没问题使用基于整数值的动态分配(据我所知),只要该值是数组分配范围内的常量,但VisualStudio不支持这一点并且将拒绝编译代码,吐出错误。例如在g++中voidFo

c++ - 可变长度数组 VLA(静态绑定(bind)或动态)

我已经很久没有在基本的编译器中使用基本数组进行编程了,但是最近我看到了这样的数组声明:inty;cin>>y;intz[y];过去的编译器常常给出错误“数组的存储大小不是常量”。然后我发现了C99中的可变大小数组。我想知道他们是如何在内部运作的。这会使数组动态化吗?这个内存是在堆上分配的吗?这种绑定(bind)是否仍然是静态完成的?如果是这样的话。 最佳答案 VariableLengthArray(VLA)是C99的一个特性,但包括gcc在内的几个编译器支持VLAasanextension在C99和gcc之外和clang在C++中支